package com.seu.algorithms.graph.minispantree;

/**
 * 有权图接口
 * Weight实现/扩展了Number & Comparable，
 * 而Comparable是接口，这里是泛型限定，不是继承。
 *
 * @author liangfeihu
 * @since 2018/12/17 14:58
 */
interface WeightedGraph<Weight extends Number & Comparable> {

    /**
     * 返回节点个数
     */
    public int V();

    /**
     * 返回边的个数
     */
    public int E();

    /**
     * 向图中添加一个边
     */
    public void addEdge(Edge<Weight> e);

    /**
     * 验证图中是否有从v到w的边
     */
    boolean hasEdge(int v, int w);

    /**
     * 显示图的信息
     */
    void show();

    /**
     * 返回图中一个顶点的所有邻边
     */
    public Iterable<Edge<Weight>> adj(int v);

}
